"""
    简易计算器：
    分别输入第1个数，选择运算符，输入第2个数，求运算的结果
"""


def input_number(num: int):
    """
    输入一个有效的数字
    :param num: 输入的是第N个数字
    :return: 返回一个有效的数字
    """
    while True:
        # 提示输入
        input_str = input("请输入第%d个数字：" % num)
        try:
            input_number = float(input_str)
            # 返回有效的输入数字
            return input_number
        except:
            print("输入的不是有效的数字，请重新输入：")


def choose_operator():
    """
    选择运算符
    :return: 返回选择的运算符
    """
    while True:
        str = input("请输入运算符(+ - * / %):")
        if str in ['+', '-', '*', '/', '%']:
            return str
        else:
            print("输入的运算符不正确，请重新输入！")


def number_operator(num01: float, num02: float, str):
    """
    加减乘除求余运算
    :param num01: 输入的第一个数
    :param num02: 输入的第二个数
    :param str: 选择的运算符
    :return: 返回计算结果
    """
    if str == "+":
        return num01 + num02
    elif str == "-":
        return num01 - num02
    elif str == "*":
        return num01 * num02
    elif str == "%":
        return num01 % num02
    elif str == "/":
        if num02 != 0:
            return num01 / num02
        else:
            print("除数分母不能为0！")


if __name__ == '__main__':
    # 输入第一个数
    first_number = input_number(1)

    # 选择运算符
    str_operator = choose_operator()

    # 输入第二个数
    second_number = input_number(2)

    # 开始计算
    reslut = number_operator(first_number, second_number, str_operator)
    print(("计算结果：\n%.2f %s %.2f = %.2f") % (first_number, str_operator, second_number, reslut))
